Questions
6 of 11
1Evaluate this claim: 'Cosine similarity and normalized dot product always produce identical rankings.' What subtlety do candidates often miss here?
2Many candidates assume increasing ef at query time always improves recall with only a linear latency cost. What's misleading about that assumption?
3Why is 'just add more RAM' not always a valid answer to a Qdrant performance question in a system design interview?
4A candidate claims that quantization always speeds up search. Under what conditions might quantization with rescoring actually be slower than searching un-quantized vectors?
5Why can two identical-looking filter queries - one using an indexed field, one using an equivalent but unindexed field - have wildly different performance, even though they return the same results?
6At billion-point scale, how would your indexing and sharding strategy differ from a design that works fine at ten million points?
7How would you architect a system to gracefully degrade - rather than fail outright - when a burst of traffic exceeds provisioned Qdrant capacity?
8What are the limits of a purely payload-filter-based multitenancy model, and at what point would you need to introduce dedicated shards or collections per tenant instead?
9How would you approach re-embedding a multi-billion-point production collection with a new embedding model with zero search downtime?
10When designing a retrieval system that combines dense, sparse, and multivector reranking at extreme scale, what's the single biggest cost driver you'd optimize first, and why?
11If you were asked to design Qdrant's filtered-HNSW search from scratch, what core problem would you need to solve, and what naive approach would you reject first?
06 / 11

At billion-point scale, how would your indexing and sharding strategy differ from a design that works fine at ten million points?

Structural changes: quantization, on-disk, more shards, hierarchical tiers

At ten million points, a design that keeps the full-precision vectors in RAM, uses a single HNSW graph per shard, and shards across a handful of nodes works fine. At a billion points, that design breaks in several ways. First, the RAM required to keep a billion 768-dim float32 vectors is about 3 TB, plus the graph (~100-160 GB) and the payload indexes. That is not feasible on a single node and expensive even across many nodes. The first structural change is quantization: binary or scalar quantization reduces the vector footprint by 4-32x, making the working set fit in a smaller, cheaper deployment. The second change is on-disk storage with inline quantized vectors: the full-precision vectors live on NVMe, the quantized vectors are in RAM, and the graph is on disk with the quantized vectors inline to halve the I/O per traversal. The third change is sharding: a billion points requires many more shards (e.g. 64-256) to distribute the data and the query load, and the shard count must be planned generously because it is fixed at creation. The fourth change is the query path: the traversal must be efficient enough that the per-query cost does not grow with the collection size, which means using quantized traversal with rescoring over a small candidate set. The fifth change is the indexing strategy: building a billion-point HNSW graph takes hours to days, and it must be done in a way that does not block ingest or queries.

The mechanism that makes these changes necessary is that the resources that are abundant at 10M points (RAM, a single machine, a single graph) become scarce at 1B points. The RAM ceiling is the most immediate: a single machine cannot hold a billion full-precision vectors, so quantization and on-disk storage are mandatory. The CPU ceiling is the second: traversing a billion-point graph with full-precision distances is too slow, so quantized traversal is mandatory. The shard ceiling is the third: a single shard with a billion points has a graph and payload indexes that are too large for a single node, so sharding across many nodes is mandatory. The build ceiling is the fourth: building a single graph over a billion points takes too long, so the build must be parallelized across shards and segments. The operational ceiling is the fifth: at a billion points, the optimizer, the backups, and the reindexing all take significant time, so they must be planned and scheduled. The design that works at 10M points does not have to worry about these ceilings; the design at 1B points is shaped by them.

  1. 1

    Quantization: mandatory at 1B points to fit the working set in a reasonable deployment.

  2. 2

    On-disk storage: full-precision vectors on NVMe, quantized vectors in RAM, graph on disk with inline storage.

  3. 3

    Sharding: 64-256 shards, planned generously, with custom sharding for scoped queries.

  4. 4

    Query path: quantized traversal with rescoring over a small candidate set.

  5. 5

    Indexing: parallelized build across shards and segments; incremental indexing to keep up with writes.

  6. 6

    Operational: backups, snapshots, and reindexing take hours; schedule them off-peak.

  7. 7

    Cost: the deployment is dominated by NVMe and network, not by RAM.

  8. 8

    Monitoring: per-shard latency, page-cache hit rate, and optimizer progress are critical.

The trade-off is between cost, latency, and recall. At a billion points, the design must accept some recall loss from quantization and some latency increase from on-disk storage, because the alternative (all in RAM, full precision) is not affordable. The common mistakes are: (1) assuming the 10M-point design scales linearly, which it does not; (2) planning the shard count based on the current size, which leaves no room for growth; (3) not using quantization, so the deployment is unaffordable; (4) not using on-disk storage, so the RAM ceiling is hit; (5) not planning the indexing and backup windows, so they block operations. Version note: the on-disk HNSW, inline storage, and quantization features that make billion-point scale feasible have evolved across Qdrant releases. Verify the availability and behavior on your version before designing.

javascript

Version-dependent: the on-disk HNSW, inline storage, and quantization features have evolved across Qdrant releases. Verify the availability on your version and benchmark the design with your data before committing to a billion-point deployment.

Difficulty: 9/10
Topics: Billion-Point Scale, Quantization, Sharding

Scenario Questions

0-2 years experience
  1. 1

    You design for 10M points and the collection grows to 1B. Explain why the original design fails.

  2. 2

    A teammate suggests keeping everything in RAM at 1B points. Explain why that is infeasible.

2-5 years experience
  1. 1

    You need to build a billion-point index and the build takes days. Describe how you would parallelize it.

  2. 2

    Your 1B-point collection has 100 shards and queries are slow. Diagnose whether the shard count is the problem or something else.

5-8 years experience
  1. 1

    Design the collection and cluster for a billion-point deployment, including the quantization, on-disk storage, sharding, and replication.

  2. 2

    You need to reduce the cost of a billion-point deployment by 50 percent without exceeding a 100ms p99. Describe the levers and the impact.

8+ years experience
  1. 1

    Derive the RAM, disk, CPU, and node count for a billion-point deployment as a function of the parameters, and identify the dominant cost.

  2. 2

    You are designing a system that must scale from 100M to 10B points over two years. Describe the roadmap and the points at which the architecture must change.

Follow-up Questions

  • How would you build a billion-point HNSW graph without blocking ingest or queries?
  • If the query latency at a billion points is dominated by disk I/O, what would you change?